/*
 * ANO_driver.h
 *
 *  Created on: 2022.2.27
 *      Author: huan
 */

#ifndef SW_CPU0_ANO_DRIVER_H_
#define SW_CPU0_ANO_DRIVER_H_
#include <uart_dma.h>

typedef struct
{
    uint8_t *buffer;
    uint8_t *len;
}Data_packge_t;

typedef struct
{
    uint32_t (*DataVerify)(uint8_t ID, uint8_t SC, uint8_t AC);
    uint32_t (*Inertial)(int16_t ACC_X,int16_t ACC_Y,int16_t ACC_Z,int16_t GYR_X,int16_t GYR_Y,int16_t GYR_Z);
    uint32_t (*CpsBarTem)(int16_t MAG_X,int16_t MAG_Y,int16_t MAG_Z,uint32_t ALT_BAR_E2,int16_t TMP_E2);
    uint32_t (*EulerAngle)(int16_t ROL_E2,int16_t PIT_E2,int16_t YAW_E2);
    uint32_t (*Quaternions)(int16_t V0_E4,int16_t V1_E4,int16_t V2_E4,int16_t V3_E4);
    uint32_t (*RemoteData)(int16_t ROL,int16_t PIT,int16_t THR,int16_t YAW,int16_t AUX1,int16_t AUX2,int16_t AUX3,int16_t AUX4,int16_t AUX5,int16_t AUX6);
    uint32_t (*ParameBack)(uint16_t ID);
    void (*Data_analyze)(uint8_t *dat, uint8_t len);
    Data_packge_t* (*ANO_Data_Receive)(uint8_t data);
}ANO_Send_t;
extern ANO_Send_t ANO_Send;

#endif /* SW_CPU0_ANO_DRIVER_H_ */
